package br.com.bankai.koby.repository.entity;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import br.com.bankai.koby.repository.dom.DomPessoa.DomTipoContato;
import br.com.graflogic.utilities.datautil.util.FormatUtil;


/**
 * @author Jaison Bankai Suport
 *
 */
@Entity
@Table(name = "tb_cliente")
@PrimaryKeyJoinColumn(name = "id_pessoa")
@Inheritance(strategy = InheritanceType.JOINED)
public class Cliente extends Pessoa {

	private static final long serialVersionUID = 1L;
	
	
	public Cliente() {
		super();
	}

	public Cliente(Long id, String tipo) {
		super(id, tipo);
		// TODO Auto-generated constructor stub
	}	
	
	@Column(name = "nu_cpf", nullable = true)
	private String cpf;

	@Column(name = "nu_documento")
	private String rg;

	@Temporal(TemporalType.DATE)
	@Column(name = "dt_nascimento")
	private Date dataNascimento;
	
	
	
	//padroes da tabela cliente
	
	
	
	
	
	
	//Getters and Setters

	public String getCpf() {
		return cpf;
	}

	public void setCpf(String cpf) {
		this.cpf = cpf;
	}

	public String getRg() {
		return rg;
	}

	public void setRg(String rg) {
		this.rg = rg;
	}

	public Date getDataNascimento() {
		return dataNascimento;
	}

	public void setDataNascimento(Date dataNascimento) {
		this.dataNascimento = dataNascimento;
	}

	public Contato getEmail() {
		for (Contato contato : getContatos()) {
			if (contato.getTipo().equals(DomTipoContato.EMAIL)) {
				return contato;
			}
		}

		return null;
	}

	public String getFormattedCpf() {
		return FormatUtil.formatCPF(cpf);
	}
	
	
	



//	METODO PRINCIPAL
	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}

}
